table of contents
qbarray.h(3) | libqb | qbarray.h(3) |
NAME¶
qbarray.h -
This is a dynamic array (it can grow, but without moving memory).
SYNOPSIS¶
#include <stdint.h>
#include <unistd.h>
#include <qb/qbdefs.h>
Typedefs¶
typedef struct qb_array qb_array_t
This is an opaque data type representing an instance of an array.
typedef void(* qb_array_new_bin_cb_fn )(qb_array_t *a,
uint32_t bin)
Functions¶
qb_array_t * qb_array_create (size_t max_elements,
size_t element_size)
Create an array with fixed sized elements. qb_array_t *
qb_array_create_2 (size_t max_elements, size_t element_size, size_t
autogrow_elements)
Create an array with fixed sized elements. int32_t
qb_array_index (qb_array_t *a, int32_t idx, void
**element_out)
Get an element at a particular index. int32_t qb_array_grow
(qb_array_t *a, size_t max_elements)
Grow the array. size_t qb_array_num_bins_get (qb_array_t
*a)
Get the number of bins used or the array. size_t
qb_array_elems_per_bin_get (qb_array_t *a)
Get the number of elements per bin. int32_t
qb_array_new_bin_cb_set (qb_array_t *a,
qb_array_new_bin_cb_fn fn)
Get a callback when a new bin is allocated. void qb_array_free
(qb_array_t *a)
Free all the memory used by the array.
Detailed Description¶
This is a dynamic array (it can grow, but without moving memory).
arr = qb_array_create_2(64, sizeof(struct my_struct), 256);
...
res = qb_array_index(arr, idx, (void**)&my_ptr);
if (res < 0) {
return res;
}
// use my_ptr, now even if there is a grow, this pointer will be valid.
Typedef Documentation¶
typedef void(* qb_array_new_bin_cb_fn)(qb_array_t *a, uint32_t bin)¶
typedef struct qb_array qb_array_t¶
This is an opaque data type representing an instance of an array.
Function Documentation¶
qb_array_t* qb_array_create (size_t max_elements, size_t element_size)¶
Create an array with fixed sized elements. Parameters:
element_size size of each element.
Returns:
qb_array_t* qb_array_create_2 (size_t max_elements, size_t element_size, size_t autogrow_elements)¶
Create an array with fixed sized elements. Parameters:
element_size size of each element.
autogrow_elements the number of elements to grow automatically by.
Returns:
size_t qb_array_elems_per_bin_get (qb_array_t * a)¶
Get the number of elements per bin.
void qb_array_free (qb_array_t * a)¶
Free all the memory used by the array. Parameters:
int32_t qb_array_grow (qb_array_t * a, size_t max_elements)¶
Grow the array. Parameters:
max_elements the new maximum size of the array.
Returns:
int32_t qb_array_index (qb_array_t * a, int32_t idx, void ** element_out)¶
Get an element at a particular index. Parameters:
idx the index
element_out the pointer to the element data.
Returns:
int32_t qb_array_new_bin_cb_set (qb_array_t * a, qb_array_new_bin_cb_fn fn)¶
Get a callback when a new bin is allocated.
size_t qb_array_num_bins_get (qb_array_t * a)¶
Get the number of bins used or the array.
Author¶
Generated automatically by Doxygen for libqb from the source code.
10 May 2016 | Version 0.17.1 |